package ar.com.osdepym.agregacionafip.servicios;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;

import ar.com.osdepym.agregacionafip.activities.context.Results;
import ar.com.osdepym.agregacionafip.adapters.Contenedor;
import ar.com.osdepym.agregacionafip.exceptions.DirectorioInexistenteException;
import ar.com.osdepym.agregacionafip.exceptions.NoExisteConfiguracionException;
import ar.com.osdepym.agregacionafip.exceptions.NoExistenResultadosException;
import ar.com.osdepym.agregacionafip.modelfile.Resultado;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;

public class ServicioResultados {
	
	public void guardarResultados(List<Resultado> resultados) {
		
		Gson json = new Gson();
		ServicioArchivos sa = new ServicioArchivos();
		
		String result = json.toJson(resultados);
		
		String directorio = "data//programa//agregacion//afip";
		String nombreArchivo = "resultados.txt";
		
		sa.escribir(directorio, nombreArchivo, result);
		
		
		
	}

	public Results buscarResultados() {
		
		Gson json = new Gson();
		ServicioArchivos sa = new ServicioArchivos();
		String directorio = "data//programa//agregacion//afip";
		String nombreArchivo = "resultados.txt";
		String resultadosStr = "";
		List<Resultado> resultados = null;
		try {
			resultadosStr = sa.leerArchivo(directorio, nombreArchivo);
			Type type = new TypeToken<List<Resultado>>(){}.getType();
			resultados = json.fromJson(resultadosStr, type);
			
		} catch (JsonSyntaxException e){
			e.printStackTrace();
		} catch (DirectorioInexistenteException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		if(resultados == null){
			return new Results();
		}
		return new Results(resultados);
	}
}
